package com.example.security.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * SSO配置属性
 */
@Data
@Component
@ConfigurationProperties(prefix = "sso")
public class SsoProperties {
    /**
     * SSO服务器地址
     */
    private String serverUrl;
    
    /**
     * 客户端ID
     */
    private String clientId;
    
    /**
     * 客户端密钥
     */
    private String clientSecret;
    
    /**
     * 允许的客户端域名
     */
    private List<String> allowedOrigins;
    
    /**
     * Token配置
     */
    private TokenConfig token = new TokenConfig();

    /**
     * 认证端点
     */
    private String authEndpoint = "/oauth/token";
    
    /**
     * 用户信息端点
     */
    private String userInfoEndpoint = "/api/user/info";
    
    /**
     * token过期时间(秒)
     */
    private long tokenExpireTime = 7200;

    @Data
    public static class TokenConfig {
        /**
         * token过期时间(秒)
         */
        private long expireTime = 7200;
        
        /**
         * 刷新token过期时间(秒)
         */
        private long refreshTime = 3600;
    }
} 